$(function () {
    const layer = layui.layer
    const form = layui.form

    // 调用初始化方法
    initArtCateList()
    // 初始化
    function initArtCateList () {
        // 发送请求获取分类列表
        $.ajax({
            method: 'get',
            url: '/my/article/cates',
            success: function (res) {
                if (res.status) {
                    return layer.msg('获取文章分类失败')
                }
                // console.log(res);
                // 使用模板 参数：模板的ID 不带#号，数据
                // 会返回一个渲染好的字符串
                let html = template('tpl-table', res)
                // 将html字符串渲染到页面中
                $('tbody').html(html)
            }
        })
    }

    // 记录弹出层的index
    var indexAdd = null
    // 添加分类的按钮 点击事件
    $('#btnAddCate').on('click', function () {
        // 弹出层
        indexAdd = layer.open({
            type: 1,
            area: ['500px', '300px'],
            title: '添加文章类别',
            content: $('#dialog-add').html()
        });
    })

    // 没有打开弹出层的时候，无法获取到它的DOM元素
    // 因此，必须要使用代理的方式，为form-add表单绑定submit事件
    // 通过body代理，绑定到form-add表单身上
    $('body').on('submit', '#form-add', function (e) {
        // 阻止表单的默认提交
        e.preventDefault()

        $.ajax({
            method: 'post',
            url: '/my/article/addcates',
            data: $('#form-add').serialize(),
            success: function (res) {
                if (res.status !== 0) {
                    return layer.msg('添加分类失败')
                }
                // console.log(res);
                // 初始化
                initArtCateList()
                // 关闭弹出层
                layer.close(indexAdd)
                // 提示
                layer.msg('添加分类成功')
            }
        })
    })

    // 记录编辑弹出层
    var indexEdit = null
    // 通过代理，给编辑按钮绑定点击事件
    $('tbody').on('click', '.btn-edit', function (e) {
        // 弹出层
        indexEdit = layer.open({
            type: 1,
            area: ['500px', '300px'],
            title: '编辑文章类别',
            content: $('#dialog-edit').html()
        });
        // 根据ID查询分类信息，显示到弹出层的表单中
        let id = $(this).attr('data-id')
        // console.log(id);
        // 发起请求获取分类的数据
        $.ajax({
            method: 'get',
            url: '/my/article/cates/' + id,
            success: function (res) {
                if (res.status !== 0) {
                    return layer.msg('获取分类数据失败')
                }
                // console.log(res);
                // 使用layui的form对象，通过val方法将数据绑定到表单
                form.val('form-edit', res.data);
            }
        })
    })

    // 通过代理，给修改表单 绑定提交事件
    $('body').on('submit', '#form-edit', function (e) {
        // 阻止默认事件
        e.preventDefault()
        // 发起请求
        $.ajax({
            method: 'post',
            url: '/my/article/updatecate',
            data: $(this).serialize(),
            success: function (res) {
                if (res.status !== 0) {
                    return layer.msg('修改分类信息失败')
                }
                layer.msg('修改分类信息成功')
                // 关闭弹出层
                layer.close(indexEdit)
                // 重新初始化
                initArtCateList()
            }
        })
    })


    // 通过代理，给删除按钮绑定点击事件
    $('tbody').on('click', '.btn-delete', function () {
        // 根据ID查询分类信息，显示到弹出层的表单中
        let id = $(this).attr('data-id')
        // 弹出层，询问框
        layer.confirm('确定要删除吗?', { icon: 3, title: '提示' }, function (index) {
            $.ajax({
                method: 'get',
                url: '/my/article/deletecate/' + id,
                success: function (res) {
                    console.log(res);
                    if (res.status !== 0) {
                        return layer.msg(res.message)
                    }
                    layer.msg('删除分类成功')
                    // 重新初始化
                    initArtCateList()
                }
            })
            // 关闭弹出层
            layer.close(index);
        });

    })


})